// (C) 2022 Intel Corporation. All rights reserved.
// Your use of Intel Corporation's design tools, logic functions and other 
// software and tools, and its AMPP partner logic functions, and any output 
// files from any of the foregoing (including device programming or simulation 
// files), and any associated documentation or information are expressly subject 
// to the terms and conditions of the Intel Program License Subscription 
// Agreement, Intel FPGA IP License Agreement, or other applicable 
// license agreement, including, without limitation, that your use is for the 
// sole purpose of programming logic devices manufactured by Intel and sold by 
// Intel or its authorized distributors.  Please refer to the applicable 
// agreement for further details.

package i3c_error_codes_pkg; 

    typedef enum logic [3:0] {
        ERROR_CODE_SUCCESS              = 4'h0, // not an error
        ERROR_CODE_CRC                  = 4'h1, // Not used outside of HDR
        ERROR_CODE_PARITY_ERR           = 4'h3, // Only used in slave mode
        ERROR_CODE_FRAME_ERR            = 4'h4,
        ERROR_CODE_NACK                 = 4'h5,
        ERROR_CODE_OVER_OR_UNDER_FLOW   = 4'h6,
        ERROR_CODE_PEC_ERR              = 4'h7, // transfer successful with PEC comparison error
        ERROR_CODE_ABORTED              = 4'h8,
        ERROR_CODE_I2C_NACK             = 4'h9, // only used in i2c mode
        ERROR_CODE_UNKNOWN_ERR          = 4'hA, // can also mean not supported command
        ERROR_CODE_DYN_ADDR_PAR_NACK    = 4'hB  //receive parity NACK when host tries to assign dynamic address to i3c target device
    } error_code_t;

endpackage
